Method and system for sorting media items in a playlist on a media device

ABSTRACT

A computer-implemented method and system are provided for sorting media items in a playlist on a media device that are ranked by score. One embodiment includes providing each of the media items with a respective profile score that is based on user preferences and a respective replay score that affects replay of the corresponding media item; and automatically sorting the media items by the replay scores. Another embodiment includes sorting the media items by a sort criteria indicated by a user; sorting the media items by at least one score associated with each of the media items; displaying the playlist; and playing the media items in the playlist according to sort order and automatically skipping media items that have already been played. Yet a further embodiment includes changing a user preference associated with a sort criteria selected by the user, wherein each of the media items includes a profile score that is calculated based on user preferences, and a replay score that affects replay of the corresponding media item; recalculating the profile score and the replay score of each of the media items; sorting the media items by the replay scores; and sorting the media items by the sort criteria indicated by a user.

BACKGROUND OF THE INVENTION

In recent years, there has been an enormous increase in the amount ofdigital media, such as music, available online. Services such as Apple'siTunes enable users to legally purchase and download music. Otherservices such as Yahoo! Music Unlimited and RealNetwork's Rhapsodyprovide access to millions of songs for a monthly subscription fee. As aresult, music has become much more accessible to listeners worldwide.However, the increased accessibility of music has only heightened along-standing problem for the music industry, which is namely the issueof linking audiophiles with new music that matches their listeningpreferences.

Many companies, technologies, and approaches have emerged to addressthis issue of music recommendation. Some companies have taken ananalytical approach. They review various attributes of a song, such asmelody, harmony, lyrics, orchestration, vocal character, and the like,and assign a rating to each attribute. The ratings for each attributeare then assembled to create a holistic classification for the song thatis then used by a recommendation engine. The recommendation enginetypically requires that the user first identify a song that he or shelikes. The recommendation engine then suggests other songs with similarattributions. Companies using this type of approach include Pandora,SoundFlavor, MusicIP, and MongoMusic (purchased by Microsoft in 2000).

Other companies take a communal approach. They make recommendationsbased on the collective wisdom of a group of users with similar musicaltastes. These solutions first profile the listening habits of aparticular user and then search similar profiles of other users todetermine recommendations. Profiles are generally created in a varietyof ways such as looking at a user's complete collection, the playcountsof their songs, their favorite playlists, and the like. Companies usingthis technology include Last.fm, Music Strands, WebJay, Mercora,betterPropaganda, Loomia, eMusic, musicmatch, genielab, upto11, Napster,and iTunes with its celebrity playlists.

The problem with these traditional recommendation systems is that theyfail to consider peer influences. For example, the music that aparticular teenager listens to may be highly influenced by the musiclistened to by a group of the teenager's peers, such as his or herfriends. As such, there is a need for a music recommendation system andmethod that recommends music to a user based on the listening habits ofa peer group.

BRIEF SUMMARY OF THE INVENTION

The present invention provides a computer-implemented method and systemfor sorting media items in a playlist on a media device that are rankedby score. One embodiment includes providing each of the media items witha respective profile score that is based on user preferences and arespective replay score that affects replay of the corresponding mediaitem; and automatically sorting the media items by the replay scores.Another embodiment includes sorting the media items by a sort criteriaindicated by a user; sorting the media items by at least one scoreassociated with each of the media items; displaying the playlist; andplaying the media items in the playlist according to sort order andautomatically skipping media items that have already been played. Yet afurther embodiment includes changing a user preference associated with asort criteria selected by the user, wherein each of the media itemsincludes a profile score that is calculated based on user preferences,and a replay score that affects replay of the corresponding media item;recalculating the profile score and the replay score of each of themedia items; sorting the media items by the replay scores; and sortingthe media items by the sort criteria indicated by a user.

According to the method and system disclosed herein, the system canserve as a media discovery device by accepting media recommendationsfrom a user's peers and ranking those recommendations for playback byreplay score, but allows the user to indicate sort criteria other thanreplay score. The media items are then sorted for playback based on acombination of both the replay scores and the indicated sort criteria.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 illustrates a system incorporating a peer-to-peer (P2P) networkfor real time media recommendations according to one embodiment.

FIG. 2 is a flow diagram illustrating the operation of the peer devicesof FIG. 1 according to one embodiment.

FIG. 3 illustrates the system 10′ according to a second embodiment ofthe present invention.

FIG. 4 illustrates the operation of the system of FIG. 3 according toone embodiment.

FIG. 5 is a flow diagram illustrating a method for automaticallyselecting media items to play based on recommendations from peer devicesand user preferences according to one embodiment of the presentinvention.

FIG. 6 illustrates an exemplary graphical user interface (GUI) fordisplaying a playlist for the peer devices including both local andrecommended media items according to an exemplary embodiment.

FIG. 7 is a flow diagram illustrating a process for scoring andcontrolling the replay of recommended media items using a no repeatfactor according to an exemplary embodiment.

FIG. 8 is a diagram illustrating the GUI displaying the playlist afterthe profile score is updated with the replay score.

FIG. 9 is a flow diagram illustrating a process for visually indicatinga replay status of media items on a media device.

FIG. 10 is a diagram illustrating one embodiment for displaying theprofile score and the replay score in a GUI using a graphicalrepresentation.

FIG. 11 is a diagram illustrating another embodiment for displaying theprofile score and the replay score using a graphical representation.

FIG. 12 is a diagram of the GUI displaying a playlist that has beensorted by a category other than score according to one embodiment.

FIG. 13 is a diagram of the GUI displaying a playlist that has beensorted based on recalculated scores and then by the category Useraccording to one embodiment.

FIG. 14 is a block diagram of an exemplary embodiment of the peerdevice.

DETAILED DESCRIPTION OF THE INVENTION

The present invention relates to a method and system for sorting mediaitems in a playlist on a media device that are ranked by score. Thefollowing description is presented to enable one of ordinary skill inthe art to make and use the invention and is provided in the context ofa patent application and its requirements. Various modifications to theembodiments and the generic principles and features described hereinwill be readily apparent to those skilled in the art. Thus, the presentinvention is not intended to be limited to the embodiments shown, but isto be accorded the widest scope consistent with the principles andfeatures described herein.

The present invention is mainly described in terms of particular systemsprovided in particular implementations. However, one of ordinary skillin the art will readily recognize that this method and system willoperate effectively in other implementations. For example, the systems,devices, and networks usable with the present invention can take anumber of different forms. The present invention will also be describedin the context of particular methods having certain steps. However, themethod and system operate effectively for other methods having differentand/or additional steps not inconsistent with the present invention.

FIG. 1 illustrates a system 10 incorporating a P2P network for providingreal time media recommendations according to one embodiment of thepresent invention. Note that while the exemplary embodiments focus onsong recommendations for clarity and ease of discussion, the presentinvention is equally applicable to providing recommendations for othertypes of media items, such as video presentations and slideshows.Exemplary video presentations are movies, television programs, and thelike. In general, the system 10 includes a number of peer devices 12-16that are capable of presenting or playing the media items and which areoptionally connected to a subscription music service 18 via a network20, such as, but not limited to, the Internet. Note that while threepeer devices 12-16 are illustrated, the present invention may be usedwith any number of two or more peer devices.

In this embodiment, the peer devices 12-16 are preferably portabledevices such as, but not limited to, portable audio players, mobiletelephones, Personal Digital Assistants (PDAs), or the like having audioplayback capabilities. However, the peer devices 12-16 may alternativelybe stationary devices such as a personal computer or the like.

The peer devices 12-16 include local wireless communication interfaces(FIG. 14) communicatively coupling the peer devices 12-16 to form apeer-to-peer (P2P) network. The wireless communication interfaces mayprovide wireless communication according to, for example, one of thesuite of IEEE 802.11 standards, the Bluetooth standard, or the like.Because the peer devices 12-16 are capable of presenting or playingmedia items whether or not coupled to the P2P network, the peer devices12-16 may be considered simply as media devices.

The peer device 12 may include a music player 22, a recommendationengine 24, and a music collection 26. The music player 22 may beimplemented in software, hardware, or a combination of hardware andsoftware. In general, the music player 22 operates to play songs fromthe music collection 26. The recommendation engine 24 may be implementedin software, hardware, or a combination of hardware and software. Therecommendation engine 24 may alternatively be incorporated into themusic player 22. The music collection 26 includes any number of songfiles stored in one or more digital storage units such as, for example,one or more hard-disc drives, one or more memory cards, internalRandom-Access Memory (RAM), one or more associated external digitalstorage devices, or the like.

In operation, each time a song is played by the music player 22, therecommendation engine 24 operates to provide a recommendationidentifying the song to the other peer devices 14, 16 via the P2Pnetwork. The recommendation does not include the song. In oneembodiment, the recommendation may be a recommendation file includinginformation identifying the song. In addition, as discussed below indetail, the recommendation engine 24 operates to programmatically, orautomatically, select a next song to be played by the music player 22based on the recommendations received from the other peer devices 14, 16identifying songs recently played by the other peer devices 14,16 anduser preferences associated with the user of the peer device 12.

Like the peer device 12, the peer device 14 includes a music player 28,a recommendation engine 30, and a music collection 32, and the peerdevice 16 includes a music player 34, a recommendation engine 36, and amusic collection 38.

The subscription music service 18 may be a service hosted by a serverconnected to the network 20. Exemplary subscription based music servicesthat may be modified to operate according to the present invention areYahoo! Music Unlimited digital music service and RealNetwork's Rhapsodydigital music service.

FIG. 2 is a flow diagram illustrating operation of the peer device 12according to one embodiment of the present invention. However, thefollowing discussion is equally applicable to the other peer devices14,16. First, the peer devices 12-16 cooperate to establish a P2Pnetwork (step 200). The P2P network may be initiated using, for example,an electronic or verbal invitation. Invitations may be desirable whenthe user wishes to establish the P2P network with a particular group ofother users, such as his or her friends. Note that this may bebeneficial when the user desires that the music he or she listens to beinfluenced only by the songs listened to by, for example, the user'sfriends. Invitations may also be desirable when the number of peerdevices within a local wireless coverage area of the peer device 12 islarge. As another example, the peer device 12 may maintain a “buddylist” identifying friends of the user of the peer device 12, where thepeer device 12 may automatically establish a P2P network with the peerdevices of the users identified by the “buddy list” when the peerdevices are within a local wireless coverage area of the peer device 12.

Alternatively, the peer device 12 may establish an ad-hoc P2P networkwith the other peer devices 14,16 by detecting the other peer devices14,16 within the local wireless coverage area of the peer device 12 andautomatically establishing the P2P network with at least a subset of thedetected peer devices 14, 16. In order to control the number of peerdevices within the ad-hoc P2P network, the peer device 12 may compareuser profiles of the users of the other peer devices 14,16 with a userprofile of the user of the peer device 12 and determine whether topermit the other peer devices 14,16 to enter the P2P network based onthe similarities of the user profiles.

At some point after the P2P network is established, the peer device 12plays a song (step 202). Initially, before any recommendations have beenreceived from the other peer devices 14, 16, the song may be a song fromthe music collection 26 selected by the user of the peer device 12.Prior to, during, or after playback of the song, the recommendationengine 24 sends a recommendation identifying the song to the other peerdevices 14,16 (step 204). The recommendation may include, but is notlimited to, information identifying the song such as a Globally UniqueIdentifier (GUID) for the song, title of the song, or the like; aUniform Resource Locator (URL) enabling other peer devices to obtain thesong such as a URL enabling download or streaming of the song from thesubscription music service 18 or a URL enabling purchase and download ofthe song from an e-commerce service; a URL enabling download orstreaming of a preview of the song from the subscription music service18 or a similar e-commerce service; metadata describing the song such asID3 tags including, for example, genre, the title of the song, theartist of the song, the album on which the song can be found, the dateof release of the song or album, the lyrics, and the like.

The recommendation may also include a list of recommenders includinginformation identifying each user having previously recommended the songand a timestamp for each recommendation. For example, if the song wasoriginally played at the peer device 14 and then played at the peerdevice 16 in response to a recommendation from the peer device 14, thelist of recommenders may include information identifying the user of thepeer device 14 or the peer device 14 and a timestamp identifying a timeat which the song was played or recommended by the peer device 14, andinformation identifying the user of the peer device 16 or the peerdevice 16 and a timestamp identifying a time at which the song wasplayed or recommended by the peer device 16. Likewise, if the peerdevice 12 then selects the song for playback, information identifyingthe user of the peer device 12 or the peer device 12 and a correspondingtimestamp may be appended to the list of recommenders.

The peer device 12, and more specifically the recommendation engine 24,also receives recommendations from the other peer devices 14, 16 (step206). The recommendations from the other peer devices 14,16 identifysongs played by the other peer devices 14, 16. Optionally, therecommendation engine 24 may filter the recommendations from the otherpeer devices 14, 16 based on, for example, user, genre, artist, title,album, lyrics, date of release, or the like (step 208).

The recommendation engine 24 then automatically selects a next song toplay from the songs identified by the recommendations received from theother peer devices 14, 16, optionally songs identified by previouslyreceived recommendations, and one or more songs from the musiccollection 26 based on user preferences (step 210). In one embodiment,the recommendation engine 24 considers only those songs identified byrecommendations received since a previous song selection. For example,if the song played in step 202 was a song selected by the recommendationengine 24 based on prior recommendations from the peer devices 14, 16,the recommendation engine 24 may only consider the songs identified innew recommendations received after the song was selected for playback instep 202 and may not consider the songs identified in the priorrecommendations. This may be beneficial if the complexity of therecommendation engine 24 is desired to be minimal such as when the peerdevice 12 is a mobile terminal or the like having limited processing andmemory capabilities. In another embodiment, the recommendation engine 24may consider all previously received recommendations, where therecommendations may expire after a predetermined or user defined periodof time.

As discussed below, the user preferences used to select the next song toplay may include a weight or priority assigned to each of a number ofcategories such as user, genre, decade of release, andlocation/availability. Generally, location identifies whether songs arestored locally in the music collection 26; available via thesubscription music service 18; available for download, and optionallypurchase, from an e-commerce service or one of the other peer devices14, 16; or are not currently available where the user may search for thesongs if desired. The user preferences may be stored locally at the peerdevice 12 or obtained from a central server via the network 20. If thepeer device 12 is a portable device, the user preferences may beconfigured on an associated user system, such as a personal computer,and transferred to the peer device 12 during a synchronization process.The user preferences may alternatively be automatically provided orsuggested by the recommendation engine 24 based on a play history of thepeer device 12. In the preferred embodiment discussed below, the songsidentified by the recommendations from the other peer devices 14, 16 andthe songs from the music collection 26 are scored or ranked based on theuser preferences. Then, based on the scores, the recommendation engine24 selects the next song to play.

Once the next song to play is selected, the peer device 12 obtains theselected song (step 212). If the selected song is part of the musiccollection 26, the peer device 12 obtains the selected song from themusic collection 26. If the selected song is not part of the musiccollection 26, the recommendation engine 24 obtains the selected songfrom the subscription music service 18, an e-commerce service, or one ofthe other peer devices 14, 16. For example, the recommendation for thesong may include a URL providing a link to a source from which the songmay be obtained, and the peer device 12 may obtain the selected songfrom the source identified in the recommendation for the song. Onceobtained, the selected song is played and the process repeats (steps202-212).

FIG. 3 illustrates the system 10′ according to a second embodiment ofthe present invention. In this embodiment, the peer devices 12′-16′ forma P2P network via the network 20 and a proxy server 40. The peer devices12′-16′ may be any device having a connection to the network 20 andaudio playback capabilities. For example, the peer devices 12′-16′ maybe personal computers, laptop computers, mobile telephones, portableaudio players, PDAs, or the like having either a wired or wirelessconnection to the network 20. As discussed above with respect to thepeer device 12, the peer device 12′ includes music player 22′, arecommendation engine 24′, and a music collection 26′. Likewise, thepeer device 14′ includes a music player 28′, a recommendation engine30′, and a music collection 32′, and the peer device 16′ includes amusic player 34′, a recommendation engine 36′, and a music collection38.

FIG. 4 is a flow diagram illustrating operation of the system 10′ asshown in FIG. 3. In this example, once the P2P network is established,the peer device 14′ plays a song and, in response, provides a songrecommendation identifying the song to the peer device 12′ via the proxyserver 40 (steps 400-404). While not illustrated for clarity, the peerdevice 14′ also sends the recommendation for the song to the peer device16′ via the proxy server 40. The peer device 16′ also plays a song andsends a song recommendation to the peer device 12′ via the proxy server40 (steps 406-410). Again, while not illustrated for clarity, the peerdevice 16′ also sends the recommendation for the song to the peer device14′ via the proxy server 40. From this point, the process continues asdiscussed above.

FIG. 5 illustrates a process of automatically selecting a song to playfrom the received recommendations and locally stored songs at the peerdevice 12′ according to one embodiment of the present invention.However, the following discussion is equally applicable to the peerdevices 12-16 of FIG. 1, as well as the other peer devices 14′-16′ ofFIG. 3. First, the user preferences for the user of the peer device 12′are obtained (step 500). The user preferences may include a weight orpriority assigned to each of a number of categories such as, but notlimited to, user, genre, decade of release, and location/availability.The user preferences may be obtained from the user during an initialconfiguration of the recommendation engine 24′. In addition, the userpreferences may be updated by the user as desired. The user preferencesmay alternatively be suggested by the recommendation engine 24′ or theproxy server 40 based on a play history of the peer device 12′. Notethat proxy server 40 may ascertain the play history of the peer device12′ by monitoring the recommendations from the peer device 12′ as therecommendations pass through the proxy server 40 on their way to theother peer devices 14′-16′. The user preferences may be stored locallyat the peer device 12′ or obtained from a central server, such as theproxy server 40, via the network 20.

Once recommendations are received from the other peer devices 14′-16′,the recommendation engine 24′ of the peer device 12′ scores the songsidentified by the recommendations based on the user preferences (step502). The recommendation engine 24′ also scores one or more local songsfrom the music collection 26′ (step 504). The recommendation engine 24′then selects the next song to play based, at least in part, on thescores of the recommended and local songs (step 506).

FIG. 6 illustrates an exemplary graphical user interface (GUI) 42 fordisplaying a playlist for the peer devices including both local andrecommended media items according to an exemplary embodiment. In thisexample, the media items displayed in the playlist are songs, andinformation for each song is displayed in several category fields of theplaylist. In this embodiment, the categories are users, genre, decade,and location/availability, but it may include other types of categories.In this example, the peer device 12′ plays media items from a playlistthat includes a mixture of items selected by the user of the device (inthis case Hugh) and recommended media items from the user's friends (inthis case Gary, Gene, Mike, and Waymen). The playlist is continuallyupdated as recommendations are received. Note that the playlist shows amixture of the media items that are on the user's machine (designated bya location Local) and items that have been recommended from friends(Gary, Gene, Mike, and Waymen) that may need to be downloaded, or can bestreamed from within the music subscription service 18.

In this example, both the local and recommended songs are scored basedon the category weights, and sorted according to their scores. Theweights for the categories may be assigned manually by the user via aGUI of the peer device 12 or a website (e.g., subscription music service18), or assigned based on a user profile. In an exemplary embodiment,the peer device 12′ always plays the item with the highest score, whichin this embodiment is the song at the top of the playlist.

Media items can be scored a number of different ways utilizing variousmechanisms and formulas. According to an exemplary embodiment, oneequation for scoring the media items as a function of the weightedcategories (and subcategories) is:

Score=( 1/10)*(1/(WD+WG+WL+WU))*(WD*WDA+WG*WGA+WL*WLA+WU*WUA)*100

where WU is the weight assigned to the user category; WUA is the weightassigned to the user attribute of the song, which is the userrecommending the song (e.g., Hugh, Gary, Gene, et al); WG is the weightassigned to the genre category; WGA is the weight assigned to the genreattribute of the song, which is the genre of the song (e.g.,Alternative, Rock, Jazz, Punk, etc.); WD is the weight assigned to thedecade category; WDA is the weight assigned to the decade attribute ofthe song, which is the decade in which the song or the album associatedwith the song was released (e.g., 1960, 1970, etc.); WL is the weightassigned to the location/availability category; and WLA is the weightassigned to the location/availability attribute of the song, which isthe location or availability of the song (e.g., Local, Subscription,Download, etc.).

As an example, assume that the following weights have been assigned tothe categories as follows:

User Category 1 Genre Category 7 Decade Category 7 Location/AvailabilityCategory 5Further assume that attributes for the categories have been assignedweights as follows:

User Genre Decade Location/Availability Hugh 9 Alternative 8 1950s 2Local 8 Gary 5 Classic Rock 5 1960s 4 Subscription Network 2 Gene 5Arena Rock 5 1970s 7 Buy/Download 1 Jazz 5 1980s 9 Find 1 New Wave 21990s 5 Punk 4 2000s 5 Dance 2 Country 2Inserting these weights into the score equation for the song “Say Hey”in FIG. 6 yields:

Score=( 1/10)*(1/(7+7+5+1))*(7*9+7*8+5*8+1*9)*100

Score=( 1/10)*( 1/20)*(63+56+40+9)*100

Score=( 1/10)*( 1/20)*(168)*100

Score=84

In the playlist shown in FIG. 6, note that the song “Say Hey” by “TheTubes” is the first item played in the playlist because it has thehighest score according to the category weights described above. In oneembodiment the score is calculated based on the category weights in theuser's preferences or profile. The score is referred to hereinafter as aprofile score. However, those with ordinary skill in the art willreadily recognize that the profile score may be based on other factorsother than category weights.

Scoring and Affecting the Replay of Recommended Media Items Using a NoRepeat Factor

It would be undesirable to most users if any particular media item isrepeatedly replayed within a short time interval. However, if the peerdevice 12′ plays the media item with the highest profile score and theuser does not receive any new recommendations with a higher profilescore than the media item already played, then the peer device 12′ couldrepeatedly play the same media item, absent a mechanism for alteringreplay of media items.

According to a further aspect of the invention, in response to each oneof the media items being played, the peer device 12′ calculates arespective replay score for the media item that affects or influencesreplay of the media item. In one embodiment, the replay score iscalculated at least in part as a function of a no repeat factor (NRF).The replay scores of the media items can then be used to sort the mediaitems for playing.

In one embodiment, the NRF is based on a user settable value. Forexample, a weighted no repeat (WNR) category may be assigned a value of9 out of 10, meaning that the period between repeated playings should belonger rather than shorter. In another embodiment, the NRF may be basedon the total number of media items in the playlist, rather than a fixedWNR.

FIG. 7 is a flow diagram illustrating a process for scoring andaffecting the replay of recommended media items using a no repeat factoraccording to one embodiment. The process assumes that the recommendationengine 24′ has already calculated the profile scores of each of themedia items in the playlist. The process begins in response to one ofthe media items being played (step 700), i.e., the song at the top ofthe playlist, at which time the recommendation engine 24′ calculates ano repeat factor (NRF) for the media item as a function of the weightedno repeat (WNR) value (step 702).

In one embodiment the NRF may be calculated using the formula:

${NRF} = \frac{{MIN}\left( {{10 \cdot {WNR}},{LASTREPEAT\_ INDEX}} \right)}{10 \cdot {WNR}}$

where the LastRepeat_Index is preferably based on one or both of a countof the number of media items played since the last play of the mediaitem, or a predetermined time period, e.g., 2 hrs, 5 hrs, 1 day, and soon.

For example, referring to the playlist shown in FIG. 6, after “Say Hey”has been played, the number of songs since this song was last played isnow 1. Assuming the weighted no repeat value (WNR) is 9, the NRF can becomputed as follows:

No Repeat Factor=Min[10*WNR, LastRepeat_Index]/(10*WNR)

No Repeat Factor=Min [10*9,1]/(10*9)

No Repeat Factor=1/(10*9)

No Repeat Factor=0.0111

In this embodiment, it should be understood that the weighted no repeat(WNR) value may be a global variable that applies equally to each of theuser's media items, while the last repeat index and the corresponding norepeat factor (NRF) may be different for each of the media items. Eachtime a media item is played, the last repeat index isincremented/decremented or calculated for each of the media items thathave already been played. For example, if the last repeat index is basedon the number of songs played since the last play of the media item,then the last repeat index is incremented. If the last repeat index isbased on a predetermined time period, then the last repeat index couldbe calculated to determine how much time has passed since the last playof the media item, e.g., based on the difference between the time thelast play occurred and the current time.

As stated above, in one embodiment the NRF may be based on the number ofmedia items in the playlist, which is dynamic. In this embodiment, theWNR can be replaced by the total number of media items in the playlist,which ensures that each item will not be repeated based in part untilmost or all of the other items have been played. Thus, the NRF scalesnaturally to the size of the playlist.

Next, the recommendation engine 24′ calculates a replay score for themedia item (as well as for the other previously played media items)based on a function of the category weights and the NRF (step 704). Inone embodiment, the replay score may be computed using the equation:

Replay Score=NRF*(1/10)*(1/(WD+WG+WL+WU))*(WD*WDA+WG*WGA+WL*WLA+WU*WUA)*100

Continuing with the example playlist shown in FIG. 6, the replay scorefor the song “Say Hey” immediately after it was played (or while it wasplaying) and after computation of the NRF would be:

Replay Score=(0.011)*( 1/10)*(1/(7+7+5+1))*(7*9+7*8+5*8+1*9)*100

Replay Score=(0.011)*( 1/10)*( 1/20)*(63+56+40+9)*100

Replay Score=(0.011)*( 1/10)*( 1/20)*(168)*100

Replay Score=0.9

Replay Score ˜=1

Referring again to FIG. 7, in one embodiment, the recommendation engine24′ updates the profile scores of media items with the correspondingreplay scores, and re-orders the playlist based on the updated profilescores (step 706).

FIG. 8 is a diagram illustrating the GUI 42 displaying the playlistafter the profile score for the song “Say Hey” is updated with thereplay score. Since the song “Say Hey” has a replay score of 1, and thereplay score is used to update the profile score, the profile scorebecomes 1, and the song “Say Hey” drops to the bottom of the playlist,ensuring that the song will not be repeated before other songs have achance to play.

The first aspect of the exemplary embodiment provides a P2P network forreal-time media recommendations in which peer devices constantly receiverecommendations of media items from other peer devices; intersperses therecommendations with an existing playlist of media items designated by auser; dynamically calculates both a profile score of each of the mediaitems according to the user's preferences, and a replay score forpreviously played media items that affects replay of the media items;and uses the replay score to update the profile score in order to playthe media items back in score order. This embodiment ensures that thereare no repetitions of played media items until the user has had at leastsome exposure to other recommended media items in the playlist.

Visually Indicating a Replay Status of a Media Item

While the replay score ensures that the user will have some exposure toother media items in the playlist before repeating the media items thathave already been played, the replay score can sometimes have the effectof hiding the media items that the user most likely will enjoy byplacing those items at the end of the playlist. Continuing with theexample given above, for instance, the song “Say Hey” had an originalprofile score of 84 and was the highest in the playlist. This means that“Say Hey” was most likely a song that the user (Hugh) was going to enjoyfrom the list, given the category weights that the user entered in thesystem (this assumes that the user has set the weights in the system toyield songs that most closely match his tastes). Once the song has beenplayed, though, the replay score is calculated, and the song “Say Hey”has a score of 1. The user might forget that this song was once at thetop of the list, given its current score.

Accordingly, a further aspect of the present invention provides amechanism for visually indicating the replay status of a media item byletting the user see the original profile score of the media item aswell as the current replay score, as determined, for example, by the norepeat factor. In this embodiment, the peer devices 12-16 retain the twoscores and provide a GUI to clearly indicate both pieces of informationto the user. By displaying the replay score, the user is apprised of thereplay status of one or all of the media items.

FIG. 9 is a flow diagram illustrating a process for visually indicatinga replay status of media items on a media device. The process begins bydisplaying the media items in a graphical user interface (GUI) of themedia device (step 900). As shown in FIGS. 6 and 8, in the exemplaryembodiment, the GUI displays the media items in a playlist, which arerepresented by text information, such as song title. However, the mediaitems could also be displayed with graphical representations, such asicons and/or pictures (e.g., album covers).

As also described above, the profile scores of the media items that arecalculated based on user preferences are also displayed in the GUI 42(step 902). However, according to this embodiment, the GUI 42 can alsodisplay the replay scores for the media items that affect the replay ofthe media items (step 904). As described above, the replay scores can bebased on corresponding no repeat factors (NRF), which in turn, can bederived from either a predetermined time period and/or a count of mediaitems that have been played since the first media item was last played.

The media items are sorted in the playlist based on the replay scores(step 906). In one embodiment, all media items in the playlist areprovided with replay scores whether or not the media item has beenplayed, with the initial values for replay scores being set equal to theprofile score of the corresponding media item. In another embodiment,all the media items have a profile score, but replay scores are onlycalculated after the corresponding media items have been played. In thiscase, the sorting can be controlled by the replay scores for previouslyplayed media items that have respective replay scores, and by theprofile score for the media items that have not yet been played on thepeer device and only have profile scores (step 906). As a practicalmatter, during operation of the peer device, the sorting of the playlist(step 906) may occur prior to display of the playlist (steps 902-904).

Based on the above, it should become apparent that the profile score isa relatively fixed value that is determined through the interaction ofthe user's profile/preferences with a given media item. However, thereplay score is a dynamic value that will normally range between, but isnot limited to, a maximum of the profile score and a lesser valuedetermined by the no repeat factor (NRF).

There are several embodiments for indicating both the profile score andthe replay score for each media item. In one embodiment, arepresentation of the replay score relative to the profile score isdisplayed in association with the media item.

FIG. 10 is a diagram illustrating one embodiment for displaying theprofile score and the replay score in a GUI using a graphicalrepresentation. In this embodiment, the profile score 1000 and replayscore 1002 are shown displayed using bar graphs. One bar graph displaysthe profile score 1000 relative to a maximum profile score 1004 (e.g.,max. 100), and a second bar graph displays the replay score 1002relative to the profile score 1000. In this example, the second bargraph is shown having a length that indicates the profile score 1000 anda shaded subsection that indicates the replay score 1002. In addition,the second bar graph is also shown to display numeric values for boththe profile score 1000 and replay score 1002, e.g., “1 of 84”.

FIG. 11 is a diagram illustrating another embodiment for displaying theprofile score 1000 and the replay score 1002 using a graphicalrepresentation. In this embodiment, the profile score 1000 and thereplay score 1002 are displayed in the single bar graph of FIG. 10 thatshows both the profile score 1000 and the replay score 1002, which makesit suitable for display in the playlist GUI 42 next to each media item.

Although bar graphs have been described for graphically illustrating theprofile score 1000 and the replay score 1002, the profile score 1000 andthe replay score 1002 could be displayed using other graphicrepresentations, such as a pie chart. The profile score 1000 and thereplay score 1002 may also be displayed with just text information. Forexample, the replay score 1002 may be displayed as a percentage of theprofile score, such as 4.5%, for instance.

Referring again to FIG. 9, the calculation of the NRF is such that thereplay score 1002 for a particular media item is allowed to rechargeback to the value of the profile score 1000 as media items are playedand/or time passes (step 908) with a corresponding display in thedisplay of the scores. For example, as shown in FIG. 11, four songs haveplayed since the first playing of the song “Say Hey”, and the replayscore 1002 for the song has increased accordingly from an initial valueof 1 to a current value of 5.

Referring again to FIG. 9, once the replay score 1002 of the media itemreaches the value of the profile score 1000, only the profile score 1000for the media item is shown in the GUI (step 910).

Given the above description of the profile and replay scores 1002, itshould be apparent that the exemplary embodiments cover alternativeembodiments that include a wider range of category weightings andaccompanying profile scores 1000 and presentation factors controllingplayback beyond the no repeat factor (NRF), such as for example, amethodology that attempts to force play back of a media item basedsolely on time, such as at least once per week or alternatively, no moreoften than once per day. Also, although described in terms of a P2Pmedia recommendation environment, the exemplary embodiments may beapplied to media devices in traditional client/server environments aswell.

Sorting Recommended Media Items in a Scored Playlist

One purpose of the P2P networked media recommendation system 10 is toprovide a music discovery mechanism for the user. While one purpose ofcreating a playlist of recommendations is the creation of a musicaljourney for the user, it is entirely possible that users of the mediarecommendation system 10 may want to sort on different categories as ameans to quickly peruse the recommendations that have been received fromtheir peers. For example, maybe the user Hugh would like to quickly seehow many recommendations have been received by a particular friend(Waymen) and the associated scores 1000 and 1002 of such media items.

FIG. 12 is a diagram of the GUI 42 displaying a playlist that has beensorted by a category other than score according to one embodiment.Sorting in this fashion can pose a potential problem for the mediarecommendation system 10 since the media recommendation system 10 isdesigned to play the first media item in the sorted playlist. If theuser sorts by some column other than score, then it is possible the peerdevices 12-16 will begin playing media items that are either (1) not themedia items most likely to match the user's tastes or (2) may be mediaitems that have already been played before (thereby eliminating themusic discovery aspects of the application).

According to a further aspect of the exemplary embodiment, embodimentsfor sorting the playlist are provided that maintain the system's purposeas a media discovery device by accepting media recommendations from auser's peers and by ranking those recommendations for playback by score,but also allows the user to indicate a sort criteria other than score.The media items are then sorted for playback based on a combination ofboth the score and the indicated sort criteria.

In one embodiment, the peer devices 12-16 permit the sorting of theplaylist by different category columns, but only subordinate to a sortby score. In this embodiment, each of the media items include a profilescore 1000 and a replay score 1002. First, the peer devices 12-16automatically sort the media items in the playlist by the replay scores1002. As stated above, the replay score 1002 may be set equal to theprofile score 1000 for the media items that have yet to be played.Second, the peer devices 12-16 sort the media items by a sort criteriaindicated by a user. For example, if the user wants to sort on the Usercolumn, then the peer devices 12-16 perform a double sort where themedia items in the playlist are first sorted by the profile and replayscores and then by User. Finally, the playlist is displayed and themedia items in the playlist are played according to the sort order. Thesteps of sorting and displaying the playlist are not necessarily orderdependent.

In a second embodiment, the peer devices 12-16 permit the user to sortthe playlist by category columns other than score first and then sort byscore second. In this embodiment, the peer devices 12-16 first sort themedia items by a sort criteria indicated by a user. For example, theuser may select a particular category to sort on by clicking one of thecategory columns in the playlist. Thereafter, the peer devices 12-16sort the media items by the score associated with each of the mediaitems, e.g., the profile and replay scores 1000 and 1002, and displaysthe sorted playlist. To preserve the integrity of the recommendationengine 24 as a music discovery device, the media items in the playlistare played according to sort order, but the media items that havealready been played (as indicated by a corresponding replay score 1002),are automatically skipped.

In this particular case, the playlist would look similar to that of FIG.12, which shows an example playlist that has been sorted by User first,and then sorted by score second. However, in this embodiment as songsare played by moving down the playlist, songs that have already beenplayed are automatically skipped. Notice that in this embodiment, themedia item being played is not necessarily the first item in theplaylist, as in the case where the first media item is a replay score.

In a third embodiment, the peer devices 12-16 permit the user to sortthe playlist by category columns other than score, but adjust the weightof the selected category so that the selected category has a greaterweight than the other categories listed by the user. In response toreceiving the user's selection of sort criteria, such as selecting aparticular category to sort on by clicking one of the category columnsin the playlist, a user preference associated with the sort criteria ischanged. As described above, user preferences used to select the nextsong to play may include a weight assigned to each of a number ofcategories, such as user, genre, decade of release, andlocation/availability. The category weights are then used to score orrank the media items from the music collection 26.

As an example, suppose the user chooses to sort the playlist by User.Then, in this embodiment, the User weight (WU) may be increasedautomatically from its initial value of 1 (see FIG. 8) to near a maximumvalue, such as 9 for instance, thereby making it a dominant force in theuser's preferences and calculation of the profile score 1000.

After the user preference associated with the sort criteria is changed,the profile score 1000 and any existing replay score 1002 arerecalculated. The media items in the playlist are then first sorted bythe recalculated replay scores 1002, as described above, and then sortedby the sort criteria selected by the user, e.g., by the category User.The sorted playlist is displayed and the media items are played in theplaylist according to sort order.

FIG. 13 is a diagram of the GUI 42 displaying a playlist that has beensorted based on recalculated scores and then by the User categoryaccording to one embodiment. Because of the change in the weightassigned to the user category, the media items now have slightlydifferent profile and replay scores 1000 and 1002.

FIG. 14 is a block diagram of an exemplary embodiment of the peer device12′ of FIG. 3. However, the following discussion is equally applicableto the other peer devices 14′-16′, as well as peer devices 12-16 ofFIG. 1. In general, the peer device 12′ includes a control system 154having associated memory 156. In this example, the music player 22′ andthe recommendation engine 24′ are at least partially implemented insoftware and stored in the memory 156. The peer device 12′ also includesa storage unit 158 operating to store the music collection 26′ (FIG. 3).The storage unit 158 may be any number of digital storage devices suchas, for example, one or more hard-disc drives, one or more memory cards,RAM, one or more external digital storage devices, or the like. Themusic collection 26′ may alternatively be stored in the memory 156. Thepeer device 12′ also includes a communication interface 160. Thecommunication interface 160 includes a network interface communicativelycoupling the peer device 12′ to the network 20 (FIG. 3). The peer device12′ also includes a user interface 162, which may include componentssuch as a display, speakers, a user input device, and the like.

The present invention provides substantial opportunity for variationwithout departing from the spirit or scope of the present invention. Forexample, while FIG. 1 illustrates the peer devices 12-16 forming the P2Pnetwork via local wireless communication and FIG. 3 illustrates the peerdevices 12′-16′ forming the P2P network via the network 20, the presentinvention is not limited to either a local wireless P2P network or a WANP2P network in the alternative. More specifically, a particular peerdevice, such as the peer device 12, may form a P2P network with otherpeer devices using both local wireless communication and the network 20.Thus, for example, the peer device 12 may receive recommendations fromboth the peer devices 14, 16 (FIG. 1) via local wireless communicationand from the peer devices 14′-16′ (FIG. 3) via the network 20.

A method and system for sorting media items in a playlist on a mediadevice that are ranked by score has been disclosed. The presentinvention has been described in accordance with the embodiments shown,and one of ordinary skill in the art will readily recognize that therecould be variations to the embodiments, and any variations would bewithin the spirit and scope of the present invention. For example, thepresent invention can be implemented using hardware, software, acomputer readable medium containing program instructions, or acombination thereof. Software written according to the present inventionis to be either stored in some form of computer-readable medium such asmemory or CD-ROM, or is to be transmitted over a network, and is to beexecuted by a processor. Consequently, a computer-readable medium isintended to include a computer readable signal, which may be, forexample, transmitted over a network. Accordingly, many modifications maybe made by one of ordinary skill in the art without departing from thespirit and scope of the appended claims.

1. A computer-implemented method for sorting media items in a playlist,comprising: providing each of the media items with a respective profilescore that is based on user preferences; providing each of the mediaitems with a respective replay score that affects replay of thecorresponding media item; automatically sorting the media items by thereplay scores.
 2. The computer-implemented method of claim 1 furthercomprising: after sorting the media items by the replay scores, sortingthe media items by a sort criteria indicated by a user.
 3. Thecomputer-implemented method of claim 2 further comprising displaying theplaylist and playing the media items in the playlist according to sortorder.
 4. The computer-implemented method of claim 2 wherein theplaylist was created in a networked peer-to-peer media recommendationsystem.
 5. The computer-implemented method of claim 2 furthercomprising: in response to each one of the media items being played,recalculating the replay scores for the media items.
 6. Thecomputer-implemented method of claim 5 wherein the replay scoresrecharge over time back to a value of the profile score.
 7. Thecomputer-implemented method of claim 2 wherein the sort criteriaindicated by the user comprises a selection of at least one category. 8.The computer-implemented method of claim 7 wherein the categoriesinclude at least one of a user category, a genre category, a decadecategory, and a location category.
 9. An executable software productstored on a computer-readable medium containing program instructions forsorting media items in a playlist, the program instructions for:providing each of the media items with a respective profile score thatis based on user preferences; providing each of the media items with arespective replay score that affects replay of the corresponding mediaitem; and automatically sorting the media items by the replay scores.10. A computer-implemented method for sorting media items on a mediadevice, comprising: sorting the media items by a sort criteria indicatedby a user; sorting the media items by at least one score associated witheach of the media items; displaying the playlist; and playing the mediaitems in the playlist according to sort order and automatically skippingmedia items that have already been played.
 11. The computer-implementedmethod of claim 10 wherein the playlist was created in a networkedpeer-to-peer media recommendation system.
 12. The computer-implementedmethod of claim 10 wherein each one of the media items include a profilescore that is based on user preferences, and previously played mediaitems include a replay score that affects replay of the correspondingmedia item.
 13. The computer-implemented method of claim 12 furthercomprising sorting the media items in the playlist based on the profilescores and replay scores, wherein the sorting is controlled by thereplay scores.
 14. The computer-implemented method of claim 13 furthercomprising: in response to each one of the media items being played,recalculating the replay scores.
 15. The computer-implemented method ofclaim 14 wherein the replay scores recharge over time back to a value ofthe profile score.
 16. The computer-implemented method of claim 11wherein the sort criteria indicated by the user comprises a selection ofat least one category.
 17. The computer-implemented method of claim 16wherein the categories include at least one of a user category, a genrecategory, a decade category, and a location category.
 18. An executablesoftware product stored on a computer-readable medium containing programinstructions for sorting media items in a playlist, the programinstructions for: sorting the media items by a sort criteria indicatedby a user; sorting the media items by at least one score associated witheach of the media items; displaying the playlist; and playing the mediaitems in the playlist according to sort order and automatically skippingmedia items that have already been played.
 19. A computer-implementedmethod for sorting media items, comprising: changing a user preferenceassociated with a sort criteria selected by the user, wherein each ofthe media items includes a profile score that is calculated based onuser preferences, and a replay score that affects replay of thecorresponding media item; recalculating the profile score and the replayscore of each of the media items; sorting the media items by the replayscores; and sorting the media items by the sort criteria indicated by auser.
 20. The computer-implemented method of claim 19 further comprisingdisplaying the playlist and playing the media items in the playlistaccording to sort order.
 21. The computer-implemented method of claim 20further comprising: in response to each one of the media items beingplayed, recalculating the replay scores for the media items.
 22. Thecomputer-implemented method of claim 21 wherein the replay scoresrecharge over time back to a value of the profile score.
 23. Thecomputer-implemented method of claim 20 wherein the sort criteriaindicated by the user comprises a selection of at least one category.24. The computer-implemented method of claim 23 wherein the categoriesinclude at least one of a user category, a genre category, a decadecategory, and a location category.
 25. An executable software productstored on a computer-readable medium containing program instructions forsorting media items in a playlist, the program instructions for:changing a user preference associated with a sort criteria selected bythe user, wherein each of the media items includes a profile score thatis calculated based on user preferences, and a replay score that affectsreplay of the corresponding media item; recalculating the profile scoreand the replay score of each of the media items; sorting the media itemsby the replay scores; and sorting the media items by the sort criteriaindicated by a user.